In today's modern computerized society, ever-increasing demands are being placed on existing computers, computer networks, servers, and other information processing systems. Approaches designed to maximize the use of information resources have become not only advisable but often necessary.
Often it is desirable to receive a master operation to be executed on a master set of data and then to automatically execute corresponding operations on one or more sets of data (one or more “slaves”). In one embodiment, the corresponding operations are the same as the master operation. The master operation, the corresponding operations, and the data sets are found in a variety of forms. The master operation and each of the corresponding operations can consist of a logical step in a chain of commands, a computation, a re-categorization of a data set, addition or removal or editing of an annotation, in the case of maps a geographical displacement, and countless other forms. In some embodiments, an operation will not affect the data set's permanent structure but is only an operational convenience, for example, as with a geographical rotation of a structure executed to assist in execution of a design program. As another example, in the case of electronic maps, it may be desirable to simultaneously execute a geographic displacement (which may encompass a rotation) of multiple sets of map data.
Typically, master and slave(s) are not indeterminate designations, but rather designations that vary from one particular use of the invention to the next. In some embodiments, master and slave(s) are designations that result from operations that are performed by an operator rather than from a permanent classification of a particular window/document/database.
Window-type operating systems, as used in computers and computer networks, are among the most commonly used environments for processing data. It is well known to cut and paste by “cutting” desired material from one source location or source document and “pasting” the material in a second target location or target document. It is also well known to “drag and drop” by “dragging” desired material from one source location or source document and “dropping” the material in a second target location or target document. Typically, a separate “cut and paste” operation (or, minimally, a separate “paste” operation) or a separate “drag and drop” operation must be executed for each target location or target document.
In the case of electronic maps, it is frequently desired to simultaneously make a given modification of two maps displaying different characteristics of a given geographic region. As an example, one map may show a given area's highway and road system, and another map may show the same area's restaurants.
In the case of different programs, such as two different word processing programs, or a word processing program and a spreadsheet program, it may be desired to automatically execute the corresponding operation in both programs. As one of many examples, it may be desirable to automatically execute a change of font, a change of color, or a right justification in both a word processing program and a spreadsheet program.
As one example, in comparing two similar documents in a word processing system, it would be desirable to have the ability to synchronize the first document with the second document, so that an operator who scrolls down the first document will cause a corresponding scrolling down to happen simultaneously in the second document. In the case where a third document has been generated, highlighting the differences between the first two documents, it would also be desirable to have the ability to synchronize the first document with the third document (and similarly, to synchronize the second document with the third document) so that an operator who scrolls down the first (or second) document will cause a corresponding scrolling down to happen simultaneously in the third document. It would also be desirable to synchronize together all three documents so that an operator who scrolls down any one of the three documents will cause a corresponding scrolling down to happen simultaneously in the other two documents.